#ifndef MOTOR_CONTROLLER_INTF_H
#define MOTOR_CONTROLLER_INTF_H

/*
 * 作者: Franz Pucher
 */

namespace diffbot {

    /** \brief 电机控制器的抽象基接口类
     * 
     * 从此基类继承并指定电机驱动器的类型。
     * 接口提供了 \ref setSpeed，这是一个抽象方法，因此必须实现。
     */
    template<typename TMotorDriver>
    class MotorControllerIntf
    {
        public:

            /** \brief 设置电机的速度
             * 
             * 实现此方法以设置连接到 \ref motor_driver_ 的电机的速度，
             * 其中 \ref motor_driver_ 的类型为 \ref TMotorDriver。
             * 
             * \param value 正值或负值，用于设置电机的方向和速度。
             * 
             */
            virtual void setSpeed(int value) = 0;

        protected:
            // 通用电机驱动器
            TMotorDriver motor_driver_;
    };
}

#endif // MOTOR_CONTROLLER_INTF_H